import { legacy_createStore as createStore } from 'redux';
//创建仓库 1参数是状态计算函数 2参数是初始状态
const ADD = 'ADD';//+1
const MINUS = 'MINUS';//-1
//状态计算函数，根据老状态和收到的用户派发的action动作计算新的状态
function reducer(state, action) {
	switch (action.type) {
		case ADD:
			return { number: state.number + 1 };
		case MINUS:
			return { number: state.number - 1 };
		default:
			return state;
	}
}
//根据状态计算函数reducer和初始状态对象{number:5}创建仓库
const store = createStore(reducer, { number: 0 });
window.store = store;
//先获取p标签
let counterValue = document.getElementById('counter-value');
let addButton = document.getElementById('add-button');
let minusButton = document.getElementById('minus-button');
function renderCounter(){
	//调用getState方法可以获取仓库中的状态
	counterValue.innerHTML = store.getState().number;
}
renderCounter();
//给仓库添加一个订阅函数，当仓库中的状态发生变化的时候，执行renderCount函数
store.subscribe(renderCounter);
//给addButton绑定点击事件，当点击addButton的时候执行回调函数
addButton.addEventListener('click',()=>{
	//向仓库派发一个动作对象，类似叫type:ADD,表示要加1
	//仓库收到此动作后，调用reducer函数，并且传入老状态和此动作，计算新状态
	store.dispatch({type:ADD});
});
minusButton.addEventListener('click',()=>{
	store.dispatch({type:MINUS});
});